let app_json = {
    "children": [
        {
            'name':'√JS参考网址',
            'page':'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures'
        },
    {
        "children": [
            {
                "name": " 最新的 ECMAScript 标准定义了 9 种数据类型" ,
                "children": [
                    {name:'9大类型，前6种原始类型，使用 typeof 运算符检查' },
                    {
                        name:'Number' ,
                        children: [
                            {
                                name:'最大整数  Number.MAX_VALUE  1.79E+308',
                            },
                            {
                                name:'最大安全值  Number.MAX_SAFE_INTEGER  253 - 1',
                            },
                            {
                                name:'最小安全值  Number.MIN_SAFE_INTEGER  -(253 - 1)',
                            },
                        ]
                    },
                    {name:'String' },
                    {name:'Boolean' },
                    {name:'symbol' },
                    {name:'bigInt' },
                    {name:'undefined' },
                    {name:'Null' },
                    {name:'Function' },
                    {
                        name:'object',
                        children:[
                            {name:'Array'},
                            {name:'Date'},
                            {name:'Map / WeakMap'},
                            {name:'Set / WeakSet'},
                        ]
                    },
                    {name:'√类型比较-typeof' ,"page":"fa8f99f8b3e34a38b07e07c04aed7c97.html",},
                    {name:'√类型比较-instanceof' ,"page":"fa8f99f8b3e34a38b07e07c04aed7c97.html",},
                ]
            },
            {
                "name": "var、let、const",
                children: [
                    {
                        name:'var',
                        children: [
                            {
                                name:'√变量提升',
                                page:''
                            }
                        ]
                    },
                    {
                        name:'let',
                        children: [
                            {
                                name:'不存在变量提升',
                                page:'http://caibaojian.com/es6/let.html'
                            },
                            {
                                name:'暂时性死区',
                                page:'http://caibaojian.com/es6/let.html'
                            },
                            {
                                name:'不允许重复声明',
                                page:'http://caibaojian.com/es6/let.html'
                            },
                            {
                                name:'块级作用域',
                                page:'http://caibaojian.com/es6/let.html'
                            },
                            {
                                name:'块级作用域与函数声明',
                                page:'http://caibaojian.com/es6/let.html'
                            },
                        ]
                    }
                ]
            },
            {
                name:'作用域',
                children: [
                    {
                        name:'√全局作用域es5',
                        page:'768c2c599c244bd68b843e7b5bf324c7.html'
                    },
                    {
                        name:'√函数作用域es5',
                        page:'140ef460345e4344af26a2b68358f21e.html'
                    },
                    {
                        name:'√块级作用域es6',
                        page:'0ad1c3b9a52244dd95b70c254a52c808.html'
                    },
                ]

            },
        ],
        "name": "基础JS知识"
    },
    {
        "children": [
            {
                name:'==='
            },
            {
                name:'new 过程' ,
                children: [
                    {
                        name:'构造函数',
                        page:'8888adbfec704034b2c0480ee94f91a1.html'
                    },
                    {
                        name:'1.创建一个空的简单JavaScript对象（即{}）',
                        page:'8888adbfec704034b2c0480ee94f91a1.html'
                    },
                    {
                        name:'2.链接该对象（设置该对象的constructor）到另一个对象 ',
                        page:'8888adbfec704034b2c0480ee94f91a1.html'
                    },
                    {
                        name:'3.将步骤1新创建的对象作为this的上下文',
                        page:'8888adbfec704034b2c0480ee94f91a1.html'
                    },
                    {
                        name:'4.如果该函数没有返回对象，则返回this。',
                        page:'8888adbfec704034b2c0480ee94f91a1.html'
                    },

                ]

            }
        ],
        "name": "JS中级知识"
    },
    {
        name:'JS 高级知识',
        children: [
            {
              name:'闭包',
              page:'8c315f1c2b8644e3a5487ab864f3f344.html'
            },
            {
                name:'原型',
                children: [
                    {
                        name:'JS - 传统OOP 区别 ？',
                        page:'03617b034ac0448b8982d15746094d36.html'
                    },
                    {
                        name:'原型链',
                        page:'03617b034ac0448b8982d15746094d36.html'
                    },
                    {
                        name:'使用原型',
                        page:'03617b034ac0448b8982d15746094d36.html'
                    },
                    {
                        name:'添加原型属性',
                        page:'03617b034ac0448b8982d15746094d36.html'
                    },
                    {
                        name:'添加实例',
                        page:'03617b034ac0448b8982d15746094d36.html'
                    },
                ],
            },
            {
                name:'继承',
                page:'d0dd74491d2443e6a822c788195fa166.html'
            },
            {
                name:'防抖/节流',
                page:'0b3fa18abaa948ce8789848f49532f7d.html'
            }, 

            {
                name:'宏/微任务实例',
                children: [
                    {
                        name:'宏任务',
                        children: [
                            {
                                name:'整体代码script'
                            },
                            {
                                name:'setTimeout'
                            },
                            {
                                name:'setInterval'
                            },
                        ]
                    },
                    {
                        name:'微任务',
                        children: [
                            {
                                name:'Promise'
                            },
                            {
                                name:'process.nextTick'
                            },
                        ]
                    },
                    {
                        name:'实例',
                        page:'a479b588b37e4c7896d1fc9e931517e4.html'
                    },
                ]
            },

            {
                name:'栈内存-loding'
            },
            {
                name:'堆内存-loding'
            },
            {
                name:'this',
                children: [
                    {
                        name:'this介绍【指向】',
                        page: '226f10627d844b31bc612bf6d8d3cdc0.html'
                    },
                    {
                      name:'this指向面试题',
                      page:'0675569964744e15a86b287e5e4d56cb.html'
                    },
                    {
                        name:'改变this指向',
                        children: [
                            {
                                name:'call',
                                page:'92cccf31769a4cb991ec00bdd29eed65.html'
                            },
                            {
                                name:'apply',
                                children: [
                                    {
                                        name:'合并数组',
                                        page: '6758e5be4031494a8aa888913a4adb54.html'
                                    },
                                    {
                                        name:'找出数组中最大/小的数字',
                                        page: '6758e5be4031494a8aa888913a4adb54.html'
                                    },
                                    {
                                        name:'链接构造器-loding',
                                        page: '6758e5be4031494a8aa888913a4adb54.html'
                                    },

                                ]
                            },
                            {
                                name: 'bind',
                                page:'9587b680e6884cde81706baa88f9ec88.html'
                            }
                        ]
                    },
                ]
            },
            {
                name:'拷贝',
                children: [
                    {
                        name:'浅拷贝 Object.assign',
                        page: 'dbfef5f3e066460e8fd310e8ee09eaf5.html'
                    },
                    {
                        name:'深拷贝-loding',
                        page:'162d31b418074c20a842e9f48877ab8f.html'
                    },
                ]
            },

        ]

    },
    {
        "children": [
            {
                "name": "地址栏输入网址按下回车",
                page:'04e2d3a7e1fb47718eaa633b95d5f8d9.html'
            },
        ],
        "name": "JS & DOM 知识"
    },
    {
        name: '性能优化',
        children: [
            {
                name:'防抖节流1',
                page:'0ae675e257d145458b8c3f7a6a38f715.html'
            },
            {
                name:'防抖节流',
                page:'c8234c6f574e4b03b6ca191735693ead.html'
            }

        ]
    },
    {
        name:'JS 常用小技巧',
        page: 'b0b12d7ea9ed4b2486b46e637b5d1779.html'
    },
    {
        "children": [
            {
               "name": "js修改css",
               page:'a0569b2e984d465591f67bb2abc103b2.html'
            },
        ],
        "name": "CSS 知识"
    },
    {
        "children": [
            {
                "name": "xxx",
            },
        ],
        "name": "安全知识"
    },
    {
        name:'vue',
        children: [
            {
                name:"生命周期",
                children:[
                    {
                        name:'beforeCreate'
                    },
                    {
                        name:'created'
                    },
                    {
                        name:'beforeMount'
                    },
                    {
                        name:'mounted'
                    },
                    {
                        name:'beforeUpdate'
                    },
                    {
                        name:'updeted'
                    },
                    {
                        name:'beforeDestroy'
                    },
                    {
                        name:'destroyed'
                    },
                ]
            },
            {
                name:'vue实现-挟持数据',
                page: 'e8dea584873444e98a66e92cdd89820a.html'
            },
            {
                name:'生命周期钩子',
                page:''
            },
            {
                name:'数据劫持',
                page:'131b9685f2654d8c838e19a5273cc2bc.html'
            }
        ]
    },
    {
        name:'react',
        children:[
            {
                name:'生命周期',
                children:[
                    {
                        name:'生命周期图谱',
                        page:'https://projects.wojtekmaj.pl/react-lifecycle-methods-diagram'
                    },
                    {
                        name:'挂载',
                        children:[
                            {
                                name:'constructor()'
                            },
                            {
                                name:'static getDerivedStateFromProps()'
                            },
                            {
                                name:'render()'
                            },
                            {
                                name:'componentDidMount()'
                            },
                        ]
                    },
                    {
                        name:'更新',
                        children:[
                            {
                                name:'static getDerivedStateFromProps()',
                            },
                            {
                                name:'shouldComponentUpdate()',
                            },
                            {
                                name:'render()',
                            },
                            {
                                name:'getSnapshotBeforeUpdate()',
                            },
                            {
                                name:'componentDidUpdate()',
                            },
                        ]
                    },
                    {
                        name:'卸载',
                        children:[
                            {
                                name:'componentWillUnmount()'
                            }
                        ]
                    }
                ]
            }
        ]
    },
    {
        name:'杂记',
        children: [
            {
              name:'js操作dom',
              page:'53c27245b46249c3bdb57366a6be10f1.html'
            },
            {
                name:'在浏览器地址栏输入URL之后发生了什么？',
                page:'https://www.cnblogs.com/hupc/p/11982623.html'
            },
            {
                name:'跨域',
                page:'8f576d4e1b824e14835eb8503afa7b6f.html'
            },
            {
                name:'http/https 区别',
                page:'57fccd2b5907451580d6b63185f9e8a5.html'
            }
        ]
    }

],
    "name": "前端"
}